package com.augurit.gzcgwsp.state.util;

import java.awt.Color;

import com.lowagie.text.Chunk;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;

public class DocStyleUtils {
	
	/**  
	14.     * 功能说明：设置字体的样式，颜色为黑色</BR>  
	15.     * 修改日期：2011-04-27  
	16.     * @author myclover  
	17.     * @param family  字体类型  
	18.     * @param size    字体大小，22f为二号，18f为小二号，16f为三号  
	19.     * @param style   字体样式  
	20.     * @return  
	21.     */ 
	public static Font setFontStyle(String family , float size , int style){
		return setFontStyle(family, Color.BLACK, size, style);
	}
	
	/**  
	27.     * 功能说明：设置字体的样式</BR>  
	28.     * 修改日期：2011-04-27  
	29.     * @author myclover  
	30.     * @param family  字体类型  
	31.     * @param color   字体颜色  
	32.     * @param size    字体大小，22f为二号，18f为小二号，16f为三号  
	33.     * @param style   字体样式  
	34.     * @return  
	35.     */  
	public static Font setFontStyle(String family , Color color , float size , int style){
		Font font = new Font();
		font.setFamily(family);
		font.setColor(color);
		font.setSize(size);
		font.setStyle(style);
		return font;
	}
	
	/**  
	46.     * 功能说明：为文字填充浅灰色背景</BR>  
	47.     * 修改日期：2011-04-27  
	48.     * @author myclover  
	49.     * @param content   需要填充背景颜色的内容  
	50.     * @param appendStr 不需要填充背景颜色的内容  
	51.     * @return  
	52.     */  

	private static Phrase setPhraseStyle(String content , String appendStr){
		Chunk chunk = new Chunk(content);
		//濉厖鐨勮儗鏅鑹蹭负娴呯伆鑹?
		chunk.setBackground(Color.LIGHT_GRAY);
		Phrase phrase = new Phrase(chunk);
		phrase.add(appendStr);
		return phrase;
	}
	
	 /**  
	63.     * 功能说明：设置段落的样式，设置前半截内容和后半截内容格式不一样的段落样式</BR>  
	64.     * 修改日：2011-04-27  
	65.     * @author myclover  
	66.     * @param content  前半截内容  
	67.     * @param font     字体的样式  
	68.     * @param firstLineIndent 首行缩进多少字符，16f约等于一个字符  
	69.     * @param appendStr 后半截内容  
	70.     * @return  
	71.     */  
	public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , String appendStr){
		Paragraph par = setParagraphStyle(content, font, 0f, 12f);
		Phrase phrase = new Phrase();
		phrase.add(par);
		phrase.add(appendStr);
		Paragraph paragraph = new Paragraph(phrase);
		paragraph.setFirstLineIndent(firstLineIndent);
		 //设置对齐方式为两端对齐
		paragraph.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);
		return paragraph;
	}
	
	/**  
	85.     * 功能说明：设置段落的样式，设置前半截内容填充了浅灰色的背景颜色，后半截内容没有背景颜色的段落样式</BR>  
	86.     * 修改日期：2011-04-27  
	87.     * @author myclover  
	88.     * @param content  前半截有背景颜色的内容  
	89.     * @param font     字体的样式  
	90.     * @param firstLineIndent 首行缩进的字符，16f约等于一个字符  
	91.     * @param leading  行间距12f表示单倍行距  
	92.     * @param appendStr 后半截内容  
	93.     * @return  
	94.     */  
	public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , String appendStr){
		Phrase phrase = setPhraseStyle(content , appendStr);
		Paragraph par = new Paragraph(phrase);
		par.setFont(font);
		par.setFirstLineIndent(firstLineIndent);
		par.setLeading(leading);
		  //设置对齐方式为两端对齐   
		par.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL);
		return par;
	}
	
	 /**  
	107.     * 功能说明：设置段落的样式，一般用于设置标题</BR>  
	108.     * 修改日期：2011-04-27  
	109.     * @author myclover  
	110.     * @param content  段落的内容  
	111.     * @param font     字体样式  
	112.     * @param leading  行间距  
	113.     * @param alignment 对齐方式  
	114.     * @return  
	115.     */ 
	public static Paragraph setParagraphStyle(String content , Font font , float leading , int alignment){
		return setParagraphStyle(content, font, 0f, leading, 0f, alignment);
	}
	
	 /**  
	121.     * 功能说明：设置段落的样式，对齐方式为两端对齐，缩进样式是文本之后0.2毫米</BR>  
	122.     * 修改日期：2011-04-27  
	123.     * @author myclover  
	124.     * @param content  段落的内容  
	125.     * @param font     字体的样式  
	126.     * @param firstLineIndent 首行缩进多少字符，16f约等于一个字符  
	127.     * @param leading  行间距  
	128.     * @return  
	129.     */
	public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading){
		return setParagraphStyle(content, font, firstLineIndent, leading, 0.6f, Paragraph.ALIGN_JUSTIFIED_ALL);
	}
	public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading,int align){
		return setParagraphStyle(content, font, firstLineIndent, leading, 0.6f, align);
	}
	
	/**  
	135.     * 功能说明：设置段落的样式</BR>  
	136.     * 修改日期：2011-04-27  
	137.     * @author myclover  
	138.     * @param content  段落的内容  
	139.     * @param font     字体的样式  
	140.     * @param firstLineIndent  首行缩进多少字符，16f约等于一个字符  
	141.     * @param leading  行间距  
	142.     * @param indentationRight 缩进样式中的文本之后多少毫米，0.6f相当于0.2毫米  
	143.     * @param alignment 对齐方式  
	144.     * @return  
	145.     */  

	public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , float indentationRight , int alignment){
		Paragraph par = new Paragraph(content, font);
		par.setFirstLineIndent(firstLineIndent);
		par.setLeading(leading);
		par.setIndentationRight(indentationRight);
		par.setAlignment(alignment);
		return par;
	}
	
}